/**
 * 优惠券相关接口 
 */
var request = require('./request.js');

module.exports = {
  /**
   * 查询优惠券
   * @param page 当前页码，起始于1
   * @param pageSize 每页记录数，必须大于等于0且小于等于100，等于0时表示不分页查询全部数据， 大于0时表示分页查询
   * @param searchCount 是否查询总记录数，查询总记录数是一个耗时的操作，所以默认为false
   * @param statusEquals 券状态 已生成MADE,已发放OPEN,已使用USED,已过期EXPIRE,已作废CANCEL;
   * @param couponActivityNameLike 券活动名称类似于
   * @param memberIdEquals 会员标识等于
   * @param orderDirection 	排序方向
   * @param orderField 排序字段
   */
  queryCoupon: function (postData) {
    return request.get('/newretail/api/mbr/coupon/query', postData)
  },
  /**
   * 查询优惠券
   * @param page 当前页码，起始于1
   * @param pageSize 每页记录数，必须大于等于0且小于等于100，等于0时表示不分页查询全部数据， 大于0时表示分页查询
   * @param searchCount 是否查询总记录数，查询总记录数是一个耗时的操作，所以默认为false
   * @param statusEquals 券状态 已生成MADE,已发放OPEN,已使用USED,已过期EXPIRE,已作废CANCEL;
   * @param idEquals 券标识等于
   * @param memberIdEquals 会员标识等于
   */
  query: function (postData) {
    if (postData.functionEquals && postData.functionEquals.length > 1) {
      let functionEquals = ''
      let tempArr = []
      tempArr = [].concat(postData.functionEquals)
      tempArr.forEach((item, index) => {
        if (index === 0) {
          functionEquals = functionEquals + '?functionEquals=' + item
        } else {
          functionEquals = functionEquals + '&functionEquals=' + item
        }
      });
      delete postData.functionEquals;
      return request.get('/newretail/api/mbr/coupon/query' + functionEquals + '&page=' + postData.page + '&pageSize=' + postData.pageSize + '&memberMobileEquals=' + postData.memberMobileEquals + '&statusEquals=' + postData.statusEquals + '&searchCount=' + postData.searchCount + '&orderDirection=' + postData.orderDirection + '&orderField=' + postData.orderField)
    } else {
      return request.get('/newretail/api/mbr/coupon/query', postData)
    }
  },
  /**
   * 查询外部会员券(未使用)列表
   */
  queryExternalCoupons: function (postData) {
    return request.get('/newretail/api/mbr/coupon/queryExternalCoupons', postData)
  },
  /**
   * 查询可用优惠券
   * @param page 当前页码，起始于1
   */
  getAvailableCoupon: function (postData) {
    return request.post("/newretail/api/promotion/calcUsableCoupons", postData)
  },
  /**
   * 促销计算
   */
  calcDiscount: function (postData) {
    return request.post("/newretail/api/promotion/calcDiscount", postData)
  },
  /**
   * 查询内部券
   */
  getCouponActivitiesByFilter: function (postData) {
    return request.get("/newretail/api/mbr/couponActivity/getCouponActivitiesByFilter", postData)
  },
  /**
   * 查询外部券
   */
  getExternalCouponActivities: function (postData) {
    return request.get("/newretail/api/mbr/couponActivity/getExternalCouponActivities", postData)
  },
  /**
   * 创建购券（外部券）订单
   */
  createCouponOrder: function (couponActivityId) {
    console.log(couponActivityId)
    return request.put("/newretail/api/mbr/couponActivity/createCouponOrder?externalCouponActivityId=" + couponActivityId)
  },
  /**
   * 获得券对应的支付订单签名
   */
  getCouponPaySign: function (postData) {
    return request.post("/newretail/api/mbr/couponActivity/getCouponPaySign", postData)
  },
  /**
   * 券申领
   */
  assign: function (postData) {
    return request.post("/newretail/api/mbr/coupon/assign", postData)
  },

  /**
   * 标记指定的券为已查看
   * @param couponIds 
   */
  visited: function (couponIds) {
    return request.put("/newretail/api/mbr/coupon/visited", couponIds)
  },
  
  /**
   * 根据券活动id查询券活动详情
   */
  getById: function (id) {
    var params = {
      id: id
    }
    return request.get("/newretail/api/mbr/couponActivity/getById", params)
  },

  /**
   * 查询会员未使用状态的券数量（本地券+外部券）
   */
  getMbrUnUseCouponCount: function () {
    return request.get("/newretail/api/mbr/coupon/getMbrUnUseCouponCount")
  }
}